Mobile devices, such as smartphones, have become ubiquitous as their prices lowered and their processing capabilities increased, due to faster CPUs, smaller memory components that can hold more data, increased network bandwidth and capabilities, and portability. Thus, users now access their smartphones more frequently now relative to their desktop or laptop computers, which tend to be more cumbersome to carry around.
Due to Internet connectivity and portability of handheld devices, users perform many tasks that were previously performed on desktop devices. Such tasks include Internet browsing and emailing. For example, in composing an email, a user needs to specify an email address as the destination of the email. To assist the user in quickly specifying the email address, a mobile email application performs a search of the user's contacts that are stored on the user's mobile device based on one or more characters specified so far. Each time the user enters another character, a new search is performed. Each updated search may be a database search or an index search that requires one or more indexes to be created based on the contact information. However, such an approach is resource intensive since each search is resource intensive. Despite their increased computing power, handheld devices are still considered resource-constrained devices.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.